#Boa:Dialog:Dialog1

import wx
import wx.grid
import consultasBD
import utiles
from decimal import Decimal

ROJO = (255, 145, 145, 255)
VERDE = (145, 255, 145, 255)
AZUL = (145, 145, 255, 255)
BLANCO = (255, 255, 255, 255)
AMARILLO = (254, 248, 191, 255)
GRIS = ( 220, 220, 220, 255)
NEGRO = ( 0, 0, 0, 255)
VERDENEGRO = ( 47, 79, 79, 255)

def create(parent):
    return Dialog1(parent)

[wxID_DIALOG1, wxID_DIALOG1BUTTON1, wxID_DIALOG1BUTTON2, wxID_DIALOG1GRID1, 
 wxID_DIALOG1STATICTEXT1, wxID_DIALOG1STATICTEXT10, wxID_DIALOG1STATICTEXT11, 
 wxID_DIALOG1STATICTEXT12, wxID_DIALOG1STATICTEXT13, wxID_DIALOG1STATICTEXT14, 
 wxID_DIALOG1STATICTEXT2, wxID_DIALOG1STATICTEXT3, wxID_DIALOG1STATICTEXT4, 
 wxID_DIALOG1STATICTEXT5, wxID_DIALOG1STATICTEXT6, wxID_DIALOG1STATICTEXT7, 
 wxID_DIALOG1STATICTEXT8, wxID_DIALOG1STATICTEXT9, wxID_DIALOG1TEXTCTRL1, 
 wxID_DIALOG1TEXTCTRL10, wxID_DIALOG1TEXTCTRL11, wxID_DIALOG1TEXTCTRL12, 
 wxID_DIALOG1TEXTCTRL13, wxID_DIALOG1TEXTCTRL14, wxID_DIALOG1TEXTCTRL2, 
 wxID_DIALOG1TEXTCTRL3, wxID_DIALOG1TEXTCTRL4, wxID_DIALOG1TEXTCTRL5, 
 wxID_DIALOG1TEXTCTRL6, wxID_DIALOG1TEXTCTRL7, wxID_DIALOG1TEXTCTRL8, 
 wxID_DIALOG1TEXTCTRL9, 
] = [wx.NewId() for _init_ctrls in range(32)]

class Dialog1(wx.Dialog):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Dialog.__init__(self, id=wxID_DIALOG1, name='', parent=prnt,
              pos=wx.Point(43, 85), size=wx.Size(814, 456),
              style=wx.DEFAULT_DIALOG_STYLE,
              title='Listar Facturas de Compras (Detalle)')
        self.SetClientSize(wx.Size(806, 429))

        self.staticText1 = wx.StaticText(id=wxID_DIALOG1STATICTEXT1,
              label='Proveedor', name='staticText1', parent=self,
              pos=wx.Point(8, 8), size=wx.Size(50, 13), style=0)

        self.textCtrl1 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL1, name='textCtrl1',
              parent=self, pos=wx.Point(8, 24), size=wx.Size(176, 21), style=0,
              value='')
        self.textCtrl1.SetEditable(False)

        self.staticText2 = wx.StaticText(id=wxID_DIALOG1STATICTEXT2,
              label='Nro.Doc.', name='staticText2', parent=self,
              pos=wx.Point(192, 8), size=wx.Size(43, 13), style=0)

        self.textCtrl2 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL2, name='textCtrl2',
              parent=self, pos=wx.Point(192, 24), size=wx.Size(96, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='')
        self.textCtrl2.SetEditable(False)

        self.staticText3 = wx.StaticText(id=wxID_DIALOG1STATICTEXT3,
              label='Fecha Fact.', name='staticText3', parent=self,
              pos=wx.Point(320, 8), size=wx.Size(57, 13), style=0)

        self.staticText4 = wx.StaticText(id=wxID_DIALOG1STATICTEXT4,
              label='Fecha Ingr.', name='staticText4', parent=self,
              pos=wx.Point(392, 8), size=wx.Size(56, 13), style=0)

        self.textCtrl3 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL3, name='textCtrl3',
              parent=self, pos=wx.Point(320, 24), size=wx.Size(72, 21), style=0,
              value='')
        self.textCtrl3.SetEditable(False)

        self.textCtrl4 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL4, name='textCtrl4',
              parent=self, pos=wx.Point(392, 24), size=wx.Size(72, 21), style=0,
              value='')
        self.textCtrl4.SetEditable(False)

        self.staticText5 = wx.StaticText(id=wxID_DIALOG1STATICTEXT5,
              label='Cant.', name='staticText5', parent=self, pos=wx.Point(464,
              8), size=wx.Size(27, 13), style=0)

        self.textCtrl5 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL5, name='textCtrl5',
              parent=self, pos=wx.Point(464, 24), size=wx.Size(40, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='')
        self.textCtrl5.SetEditable(False)

        self.staticText6 = wx.StaticText(id=wxID_DIALOG1STATICTEXT6,
              label='Tipo', name='staticText6', parent=self, pos=wx.Point(288,
              8), size=wx.Size(20, 13), style=0)

        self.textCtrl6 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL6, name='textCtrl6',
              parent=self, pos=wx.Point(288, 24), size=wx.Size(24, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='')
        self.textCtrl6.SetEditable(False)

        self.staticText7 = wx.StaticText(id=wxID_DIALOG1STATICTEXT7,
              label='Observaciones', name='staticText7', parent=self,
              pos=wx.Point(8, 48), size=wx.Size(71, 13), style=0)

        self.textCtrl7 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL7, name='textCtrl7',
              parent=self, pos=wx.Point(8, 64), size=wx.Size(496, 21), style=0,
              value='')
        self.textCtrl7.SetEditable(False)

        self.staticText8 = wx.StaticText(id=wxID_DIALOG1STATICTEXT8,
              label='Subtotal', name='staticText8', parent=self,
              pos=wx.Point(544, 8), size=wx.Size(40, 13), style=0)

        self.textCtrl8 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL8, name='textCtrl8',
              parent=self, pos=wx.Point(544, 24), size=wx.Size(72, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='0.00')

        self.staticText9 = wx.StaticText(id=wxID_DIALOG1STATICTEXT9,
              label='IVA', name='staticText9', parent=self, pos=wx.Point(616,
              8), size=wx.Size(17, 13), style=0)

        self.textCtrl9 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL9, name='textCtrl9',
              parent=self, pos=wx.Point(616, 24), size=wx.Size(72, 21),
              style=wx.TE_RIGHT | wx.TE_LEFT, value='0.00')

        self.staticText10 = wx.StaticText(id=wxID_DIALOG1STATICTEXT10,
              label='Total', name='staticText10', parent=self, pos=wx.Point(728,
              8), size=wx.Size(24, 13), style=0)

        self.textCtrl10 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL10,
              name='textCtrl10', parent=self, pos=wx.Point(728, 24),
              size=wx.Size(72, 21), style=wx.TE_RIGHT | wx.TE_LEFT,
              value='0.00')

        self.staticText11 = wx.StaticText(id=wxID_DIALOG1STATICTEXT11,
              label='Desc.s/IVA', name='staticText11', parent=self,
              pos=wx.Point(544, 48), size=wx.Size(53, 13), style=0)

        self.textCtrl11 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL11,
              name='textCtrl11', parent=self, pos=wx.Point(544, 64),
              size=wx.Size(72, 21), style=wx.TE_RIGHT | wx.TE_LEFT,
              value='0.00')
        self.textCtrl11.SetEditable(False)

        self.textCtrl12 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL12,
              name='textCtrl12', parent=self, pos=wx.Point(616, 64),
              size=wx.Size(72, 21), style=wx.TE_RIGHT | wx.TE_LEFT,
              value='0.00')
        self.textCtrl12.SetEditable(False)

        self.staticText12 = wx.StaticText(id=wxID_DIALOG1STATICTEXT12,
              label='Desc.c/IVA', name='staticText12', parent=self,
              pos=wx.Point(616, 48), size=wx.Size(53, 13), style=0)

        self.grid1 = wx.grid.Grid(id=wxID_DIALOG1GRID1, name='grid1',
              parent=self, pos=wx.Point(8, 96), size=wx.Size(792, 284),
              style=0)

        self.button1 = wx.Button(id=wxID_DIALOG1BUTTON1, label='Imprimir',
              name='button1', parent=self, pos=wx.Point(8, 400),
              size=wx.Size(75, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnImprimir,
              id=wxID_DIALOG1BUTTON1)

        self.button2 = wx.Button(id=wxID_DIALOG1BUTTON2, label='Salir',
              name='button2', parent=self, pos=wx.Point(720, 400),
              size=wx.Size(75, 23), style=0)
        self.button2.Bind(wx.EVT_BUTTON, self.OnSalir, id=wxID_DIALOG1BUTTON2)

        self.staticText13 = wx.StaticText(id=wxID_DIALOG1STATICTEXT13,
              label='Cant.', name='staticText13', parent=self, pos=wx.Point(536,
              384), size=wx.Size(27, 13), style=0)

        self.textCtrl13 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL13,
              name='textCtrl13', parent=self, pos=wx.Point(536, 400),
              size=wx.Size(40, 21), style=wx.TE_RIGHT | wx.TE_LEFT, value='0')
        self.textCtrl13.SetEditable(False)

        self.staticText14 = wx.StaticText(id=wxID_DIALOG1STATICTEXT14,
              label='Pesos', name='staticText14', parent=self, pos=wx.Point(576,
              384), size=wx.Size(28, 13), style=0)

        self.textCtrl14 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL14,
              name='textCtrl14', parent=self, pos=wx.Point(576, 400),
              size=wx.Size(72, 21), style=wx.TE_RIGHT | wx.TE_LEFT,
              value='0.00')
        self.textCtrl14.SetEditable(False)

    def __init__(self, parent, idfactura):
        self._init_ctrls(parent)
        self.crearGrilla()
        self.cargarEncabezado(idfactura)
        self.cargarGrilla(idfactura)
        
    def OnSalir(self, event):
        self.Close()

    def ajustarAnchoColumnas(self):
        for y in xrange(self.grid1.GetNumberCols()):
            self.grid1.AutoSizeColumn(y,True)
            
    def crearGrilla(self):
        #Cod.Art.Prov,CodSussan,Rubro,Grupo,Color,Talle,PTC,Cant,CtoUnitario,Total
        #0            1         2     3     5     4     6   7    8           9
        columnas = ['Cod.Art.\nProveedor','Codigo\nSussan','Rubro','Grupo',\
                    'Talle','Color','PTC','Cant','Costo\nUnitario','Total']
        self.grid1.CreateGrid(1,len(columnas))
        for i, col in enumerate(columnas): 
            self.grid1.SetColLabelValue(i, col)

        self.grid1.SetSelectionMode(wx.grid.Grid.wxGridSelectRows)
        self.grid1.EnableEditing(False)
        self.ajustarAnchoColumnas()
        self.grid1.Refresh()

    def cargarEncabezado(self,idfactura):
        r1 = "SELECT c.idfactura,c.tipodoc,c.nrofactura,c.idproveedor,pv.nombre, \n"
        r2 = "       c.fechafactura,c.fechaingreso,c.cantprendas,c.en1oen2, \n"
        r3 = "       c.iva,c.subtotal,c.total,c.porIVA,c.observaciones, \n"
        r4 = "       c.descSinIVA,c.descConIVA \n"
        r5 = "FROM compras c, proveedor pv \n"
        r6 = "WHERE c.idfactura='"+idfactura+"' AND c.idproveedor=pv.idproveedor "
        sql = r1+r2+r3+r4+r5+r6
        datos1 = consultasBD.ordenCrudaDict(sql)
        if datos1==() or datos1==None or len(datos1)==0:
            print "No hay datos que mostrar con ese idfactura:",idfactura
            self.Close()
        
        datos1 = datos1[0]
        proveedor = datos1["nombre"]+" / "+str(datos1["idproveedor"])
        nrodoc = str(datos1["nrofactura"])
        fechaf = str(datos1["fechafactura"])[:10]
        fechaf = utiles.invertirFecha2(fechaf)
        fechai = str(datos1["fechaingreso"])[:10]
        fechai = utiles.invertirFecha2(fechai)
        cantidad = str(datos1["cantprendas"])
        tipo = str(datos1["en1oen2"])
        subtotal = str(datos1["subtotal"])
        iva = str(datos1["iva"])
        total = str(datos1["total"])
        descSinIVA = str(datos1["descSinIVA"])
        descConIVA = str(datos1["descConIVA"])
        if datos1["observaciones"]!=None:
            observaciones = str(datos1["observaciones"])
        else:
            observaciones = ""
            
        self.textCtrl1.SetLabel(proveedor)
        self.textCtrl2.SetLabel(nrodoc)
        self.textCtrl3.SetLabel(fechaf)
        self.textCtrl4.SetLabel(fechai)
        self.textCtrl5.SetLabel(cantidad)
        self.textCtrl6.SetLabel(tipo)
        self.textCtrl7.SetLabel(observaciones)
        self.textCtrl8.SetLabel(subtotal)
        self.textCtrl9.SetLabel(iva)
        self.textCtrl10.SetLabel(total)
        self.textCtrl11.SetLabel(descSinIVA)
        self.textCtrl12.SetLabel(descConIVA)

    def datosAdicionales(self,codsussan,color,talle):
        r1 = "SELECT ptc.id AS ptc, r.idrubro, r.nombrerubro, p.grupo, \n"
        r2 = "       g.nombregrupo, c.idcolor, c.nombre, pc.codartprov \n"
        r3 = "FROM producto_talle_color ptc, productos p, colores c, \n"
        r4 = "     rubros r, grupos g,producto_codartprov pc \n"
        r5 = "WHERE ptc.codsussan='"+codsussan+"' AND ptc.color='"+color+"' \n"
        r6 = "      AND ptc.talle='"+talle+"' AND ptc.codsussan=p.codsussan \n"
        r7 = "      AND p.grupo=g.idgrupo AND p.grupo=r.idgrupo \n"
        r8 = "      AND ptc.color = c.idcolor AND ptc.codsussan=pc.codsussan "
        sql = r1+r2+r3+r4+r5+r6+r7+r8
        datos3 = consultasBD.ordenCrudaDict(sql)
        if datos3==() or datos3==None or len(datos3)==0:
            diccio = {"ptc":"","idrubro":"","nombrerubro":"",\
                      "idgrupo":"","nombregrupo":"",\
                      "idcolor":"","nombrecolor":"","codartprov":""}
        else:
            datos3 = datos3[0]
            ptc = str(datos3["ptc"])
            idrubro = str(datos3["idrubro"])
            nombrerubro = str(datos3["nombrerubro"])
            idgrupo = str(datos3["grupo"])
            nombregrupo = str(datos3["nombregrupo"])
            idcolor = str(datos3["idcolor"])
            nombrecolor = str(datos3["nombre"])
            codartprov = str(datos3["codartprov"])
            diccio = {"ptc":ptc,"idrubro":idrubro,"nombrerubro":nombrerubro,\
                      "idgrupo":idgrupo,"nombregrupo":nombregrupo,\
                      "idcolor":idcolor,"nombrecolor":nombrecolor,\
                      "codartprov":codartprov}
        return diccio

    def cargarGrilla(self,idfactura):
        sql = "SELECT * FROM compras_items WHERE idfactura='"+idfactura+"' AND color<>'PROCESADO'"
        datos2 = consultasBD.ordenCrudaDict(sql)
        if datos2==() or datos2==None or len(datos2)==0:
            print "No hay datos que mostrar con ese idfactura:",idfactura
            self.Close()

        totCantidad = 0
        totPesos = Decimal("0.00")

        for fil,item in enumerate(datos2):
            codsussan = item["codsussan"]
            cantidad = str(item["cantidad"])
            costounidad = str(item["costounidad"])
            cant = int(cantidad)
            costo = Decimal(costounidad)
            subtotal = cant*costo
            subtotal = str(subtotal)
            if codsussan!="DEV":
                color = str(item["color"])
                talle = str(item["talle"])
            else:
                color = ""
                talle = ""

            try:
                totCantidad+= int(cantidad)
                totPesos+= Decimal(subtotal)
            except:
                totCantidad+= 0
                totPesos+= Decimal("0.00")
                

            diccio = self.datosAdicionales(codsussan,color,talle)
            ptc = diccio["ptc"]
            codartprov = diccio["codartprov"]
            rubro = diccio["nombrerubro"][:20]+"/"+diccio["idrubro"]
            grupo = diccio["nombregrupo"][:20]+"/"+diccio["idgrupo"]
            color = diccio["nombrecolor"]+"/"+diccio["idcolor"]
            if color == "/": codartprov = str(item["color"])+"*"

            #Cod.Art.Prov,CodSussan,Rubro,Grupo,Color,Talle,PTC,Cant,CtoUnitario,Total
            #0            1         2     3     5     4     6   7    8           9
            self.grid1.SetCellValue(fil,0,codartprov)
            self.grid1.SetCellValue(fil,1,codsussan)
            self.grid1.SetCellValue(fil,2,rubro)
            self.grid1.SetCellValue(fil,3,grupo)
            self.grid1.SetCellValue(fil,4,talle)
            self.grid1.SetCellValue(fil,5,color)
            self.grid1.SetCellValue(fil,6,ptc)
            self.grid1.SetCellValue(fil,7,cantidad)
            self.grid1.SetCellValue(fil,8,costounidad)
            self.grid1.SetCellValue(fil,9,subtotal)
            self.grid1.AppendRows()

            self.grid1.SetCellAlignment(fil, 1, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid1.SetCellAlignment(fil, 4, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid1.SetCellAlignment(fil, 7, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid1.SetCellAlignment(fil, 8, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid1.SetCellAlignment(fil, 9, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            
        self.textCtrl13.SetLabel(str(totCantidad))
        self.textCtrl14.SetLabel(str(totPesos))
        self.ajustarAnchoColumnas()
        self.button2.SetFocus()

    def OnImprimir(self, event):
        print "Imprimiendo"
        f=open("c:\\matrisamor.doc\\reporte-ListarFacturasCompras.html","w")
        numeroPagina = 1
        nrosuc,nombresuc = utiles.datosSucursal()
        
        totalItemPorPagina = 55
        totalPaginas = int(self.grid1.GetNumberRows()-1) / totalItemPorPagina 
        totalPaginas+= 1

        def encabezadoPagina(texto):
            fecha = utiles.getfechaTime()
            
            proveedor = self.textCtrl1.GetLabel()
            nrodoc = self.textCtrl2.GetLabel()
            fechaf = self.textCtrl3.GetLabel()
            fechai = self.textCtrl4.GetLabel()
            cantidad = self.textCtrl5.GetLabel()
            tipo = self.textCtrl6.GetLabel()
            observaciones = self.textCtrl7.GetLabel()
            subtotal = self.textCtrl8.GetLabel()
            iva = self.textCtrl9.GetLabel()
            total = self.textCtrl10.GetLabel()
            descSinIVA = self.textCtrl11.GetLabel()
            descConIVA = self.textCtrl12.GetLabel()

            tama = '"2"'
            a = '<table width="100%" cellspacing="0" border="1">\n'
            a+= '<tr>\n'
            a+= '<td valign="top" align="left">'
            a+= 'SUSSAN BOUTIQUE<br><font size='+tama+'>Documento de Compra</font></td>\n'
            a+= '<td valign="top" align="left"><font size='+tama+'>'
            a+= 'Proveedor: '+proveedor+'<br>Nro.Doc: '+nrodoc+' Tipo: '+tipo+'<br>'
            a+= 'Fecha Doc: '+fechaf+'<br>Ingreso el: '+fechai
            a+= '</font></td>\n'
            a+= '<td valign="top" align="left"><font size='+tama+'>'
            a+= 'Subtotal: $'+subtotal+'<br>Iva $'+iva+'<br>Total $'+total+'<br>'
            if descSinIVA != "0.00" and descConIVA != "0.00":
                a+= 'Desc.s/IVA $'+descSinIVA+' Desc.c/IVA $'+descConIVA+'<br>'
            a+= 'Cantidad: '+self.textCtrl5.GetLabel()
            a+= '</font></td>\n'
            a+= '<td valign="top" align="right" >'+fecha
            a+= '<br>P&aacute;gina '+str(numeroPagina)+' / '+str(totalPaginas)+'</td>\n'
            a+= '</tr>\n'
            a+= '</table>\n'
            if observaciones !="":
                a+= '<br>OBSERVACIONES: '+observaciones+'<br>'
                a+= '<hr>\n'
            texto+= a
            return texto
        
        def encabezadoTabla(texto):
            #Cod.Art.Prov,CodSussan,Rubro,Grupo,Color,Talle,PTC,Cant,CtoUnitario,Total
            #0            1         2     3     5     4     6   7    8           9
            tama = '"2"'
            a = '<hr>'
            a+= '<table width="100%" cellspacing="1" border="0"> \n'
            a+= '<tr>\n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Orden</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Cod.Art.<br>Proveedor</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Codigo<br>Sussan</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Rubro</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Grupo</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Talle</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>Color</font></td> \n'
            a+= '<td valign="top" align="left"><font size='+tama+'>PTC</font></td> \n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Cant</font></td> \n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Costo<br>Unitario</font></td> \n'
            a+= '<td valign="top" align="right"><font size='+tama+'>Total</font></td> \n'
            a+= '</tr> \n'
            a+= '<tr>\n'
            a+= '<td colspan="11"><hr></td>\n'
            a+= '</tr>\n'
            texto+= a
            return texto
        
        cadena = '<?xml version="1.0" encoding="utf-8" ?> \n'
        cadena+= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> \n'
        cadena+= '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> \n'
        cadena+= '<head> \n'
        cadena+= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> \n'
        cadena+= '<meta name="generator" content="Docutils 0.4.1: http://docutils.sourceforge.net/" /> \n'
        cadena+= '<title>Sussan Boutique</title> \n'
        cadena+= '</head> \n'
        cadena+= '<body> \n'

        cadena = encabezadoPagina(cadena)
        cadena = encabezadoTabla(cadena)
        f.write(cadena)
        
        renglon = 0
        orden = 0
        for fil in xrange(self.grid1.GetNumberRows()):
            #Cod.Art.Prov,CodSussan,Rubro,Grupo,Color,Talle,PTC,Cant,CtoUnitario,Total
            #0            1         2     3     5     4     6   7    8           9
            if self.grid1.GetCellValue(fil,0)=="": continue
            orden+= 1
            codartprov = self.grid1.GetCellValue(fil,0)
            codsussan = self.grid1.GetCellValue(fil,1)
            rubro = self.grid1.GetCellValue(fil,2)
            grupo = self.grid1.GetCellValue(fil,3)
            talle = self.grid1.GetCellValue(fil,4)
            color = self.grid1.GetCellValue(fil,5)
            ptc = self.grid1.GetCellValue(fil,6)
            cant = self.grid1.GetCellValue(fil,7)
            costo = self.grid1.GetCellValue(fil,8)
            total = self.grid1.GetCellValue(fil,9)

            tama = '"0.02"'
            cadena = '<tr> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+str(orden)+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+codartprov+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+codsussan+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+rubro+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+grupo+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+talle+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+color+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size='+tama+'>'+ptc+'</font></td> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+cant+'</font></td> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+costo+'</font></td> \n'
            cadena+= '<td valign="top" align="right"><font size='+tama+'>'+total+'</font></td> \n'
            cadena+= '</font></tr>\n'
            f.write(cadena)
            
            renglon+= 1
            
            if renglon == totalItemPorPagina :
                f.write("</table><!-- salto de pagina -->\n")
                f.write("<p STYLE='page-break-after: always;'></p>\n")
                renglon = 0
                numeroPagina+= 1
                cadena = encabezadoPagina("")
                cadena = encabezadoTabla(cadena)
                f.write(cadena)

        cadena = '</table><br>Total renglones: '+str(orden)+'\n'
        cadena+= '</body>\n</html>\n'
        f.write(cadena)
        f.close()

        import os
        os.system("taskkill /IM firefox.exe /F")
        os.system("c:\\explorer.lnk c:\\matrisamor.doc\\reporte-ListarFacturasCompras.html")
        
        
